
#ifndef BRIDGE_H
#define BRIDGE_H

#include <iostream>
#include <vector>
#include <Eigen/Dense>

#include "point.h"
#include "member.h"

using Eigen::MatrixXd;

class Bridge {

  private:
    std::vector<Member> members;
    std::vector<Point> points;

    MatrixXd mat;
    MatrixXd forces;
    MatrixXd vect;

  public:
    int excess_unknowns();

    void solve();

    std::vector<Point> getPoints();

    void addMember(Member);

    void printResults();

    void draw();
};

#endif

